#include "../include/head.h"
#include "../include/workque.h"
int queInit(pQue_t pQue)
{
    //初始化
    pthread_mutex_init(&pQue->mutex,NULL);
    pthread_cond_init(&pQue->cond,NULL);
    pQue->pHead = NULL;
    pQue->Ptail = NULL;
    pQue->size = 0; 
    
}
int queInsert(pQue_t pQue,pNode_t pnew)
{
    //从任务队列里面插入新的任务节点
    
    if(pQue == NULL)
    {
        perror("pQue is NULL");
        return -1;
    }
    if(pQue->size == 0)
    {
        pQue->pHead = pnew;
        pQue->Ptail = pnew;
        pQue->size++;
    }
    else
    {
        pQue->Ptail->next = pnew;
        pQue->Ptail = pnew;
        //尾插法，移动到下一个新节点
       pQue->size++; 
    }
    return 0;
    
}
int queGet(pQue_t pQue,pNode_t* pget)
{
    if(pQue->size == 0)
    {
        perror("pQue is NULL not Get");
        return -1;       
    }
    *pget = pQue->pHead;
    pQue->pHead = pQue->pHead->next;
    pQue->size--;
    return 0;
}